//----------------------------------------------------------------------------
//  ,-.
// /_\___ ,   CA Framework
// '  ___\    (C) Riccardo Capra - http://riccar.do
//  //   \\
//----------------------------------------------------------------------------

#ifndef NJ_ATOMIC_TEST_H
#	define NJ_ATOMIC_TEST_H

#	include "NjExample01.h"

	/// \brief Implements tests on NjAtomic class
	class NjAtomicTest
	{
	public:
		/// \brief Runs all the tests on NjAtomic class
		static void Run(void);

	private:
		/// \brief Private class for internal use
		///
		/// It implements few structures and static methods
		class Static;

		/// \brief Private class for internal use
		///
		/// It implements few structures and static methods depending on type \em tType
		template<typename tType>
		class TypeData;

		NJ_DISABLE_INSTANCE(NjAtomicTest);
	};

#endif // NJ_ATOMIC_TEST_H
